home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 021 - HO Utilities - Clock Utility System.dsk / APPOINTMENT.BK.bas < prev    next >
BASIC Source File  |  2019-02-16  |  12KB  |  318 lines

  1. 10  GOSUB 50000: HIMEM: 36864:ER = 38144: FOR I = 0 TO 9: READ D: POKE I +ER,D: NEXT I: PRINT  CHR$(21): FOR R = 3 TO 5
  2. 15  DATA 104,168,104,166,223,154,72,152,72,96
  3. 20 D$ =  CHR$(4): PRINT D$"BRUN BIN.TIME.INTRPT"
  4. 30  GOTO 1670
  5. 40  DIM A$(5,6,4): DIM MO$(12)
  6. 50  HOME :A$ = "______________________________________________________________________________"
  7. 60 C$(0) = "SUN":C$(1) = "MON":C$(2) = "TUE":C$(3) = "WED":C$(4) = "THU":C$(5) = "FRI":C$(6) = "SAT"
  8. 65 MO$(1) = "JANUARY":MO$(2) = "FEBRUARY":MO$(3) = "MARCH":MO$(4) = "APRIL":MO$(5) = "MAY":MO$(6) = "JUNE":MO$(7) = "JULY":MO$(8) = "AUGUST":MO$(9) = "SEPTEMBER":MO$(10) = "OCTOBER":MO$(11) = "NOVEMBER":MO$(12) = "DECEMBER"
  9. 70 D$ =  CHR$(4)
  10. 80  POKE 1912,1
  11. 90  PRINT 
  12. 100  REM                                 
  13. 110  GOTO 640
  14. 120  HOME : VTAB 5: PRINT "Printing Calendar": PRINT D$;"PR#1": PRINT 
  15. 130 G% = (80 - LEN(G$))/2
  16. 140  PRINT  SPC( G%);G$: PRINT 
  17. 150  PRINT  SPC( 6);C$(0); SPC( 8);C$(1); SPC( 8);C$(2); SPC( 8);C$(3); SPC( 8);C$(4); SPC( 8);C$(5); SPC( 8);C$(6)
  18. 160  PRINT PS$;A$
  19. 170  FOR R = 0 TO 5
  20. 180 PS$ = "  ": GOSUB 370:PS$ = ""
  21. 190  PRINT PS$;A$
  22. 200  NEXT R
  23. 210  PRINT D$;"PR#0": GOSUB 1520
  24. 220  PRINT D$;"PR#1"
  25. 230  PRINT "       Printed    Date : ";JK$; SPC( 26)"APPOINTMENT BOOK"
  26. 240  PRINT "                  Time : ";KJ$
  27. 250  PRINT D$;"PR#0"
  28. 260  GOTO 960
  29. 270  END : REM                           
  30. 280  REM INITIALIZE MONTH
  31. 290  FOR R = 0 TO 5
  32. 300  FOR C = 0 TO 6
  33. 310  FOR Z = 0 TO 4
  34. 320 A$(R,C,Z) = " "
  35. 330  NEXT Z
  36. 340  NEXT C
  37. 350  NEXT R
  38. 360  RETURN : REM                       
  39. 370  REM PRINT 1 ROW OF DAYS
  40. 380  FOR Z = 0 TO 4
  41. 390  FOR N = 0 TO 6
  42. 400 B$(N) = "|" +A$(R,N,Z)
  43. 410 B(N) = 10 - LEN(A$(R,N,Z))
  44. 420  NEXT N
  45. 430  PRINT PS$;B$(0); SPC( B(0));B$(1); SPC( B(1));B$(2); SPC( B(2));B$(3); SPC( B(3));B$(4); SPC( B(4));B$(5); SPC( B(5));B$(6); SPC( B(6));"|"
  46. 440  NEXT Z
  47. 450  RETURN : REM                       
  48. 460  REM ESTABLISH DAYS OF MONTH
  49. 470 D = 1: GOSUB 3000:N = X
  50. 480  GOSUB 3100:F$ =  STR$(ND)
  51. 550 R = 0:C = N:M = 48:N = 49
  52. 560 A$(R,C,0) = "(" + CHR$(M) + CHR$(N) +")"
  53. 570  IF  CHR$(M) + CHR$(N) = F$  THEN 630
  54. 580 C = C +1:N = N +1
  55. 590  IF C <7  THEN 610
  56. 600 R = R +1:C = 0
  57. 610  IF N <58  THEN 560
  58. 620 N = 48:M = M +1: GOTO 560
  59. 630  RETURN : REM                        
  60. 640  REM FRONT MENU
  61. 650  HOME : VTAB 5: HTAB 7: PRINT "Use current Month and Year": VTAB 7: HTAB 10: PRINT "on the TIMEMASTER II H.O."
  62. 660  VTAB 9: HTAB 17: PRINT "(Y/N)": VTAB 11: HTAB 18: INPUT ":";LL$
  63. 670  IF LL$ = "N"  OR LL$ = "n"  THEN 710
  64. 680  IF LL$ = "Y"  OR LL$ = "y"  THEN  GOSUB 1520
  65. 690 G$ = ZY$
  66. 700  PRINT : GOTO 770
  67. 710  HOME : VTAB 4: PRINT "Need Month Name and 4-Digit Year"
  68. 720  PRINT 
  69. 730  PRINT "Example   : December 1986"
  70. 740  PRINT 
  71. 750  INPUT "          : ";E$
  72. 752 G$ = "": FOR I = 1 TO  LEN(E$):CH =  ASC( MID$ (E$,I,1) + CHR$(0)): IF CH > =  ASC("a")  AND CH < =  ASC("z")  THEN CH = CH -32
  73. 753 G$ = G$ + CHR$(CH): NEXT I
  74. 755 F = 0: FOR I = 1 TO 12: IF  LEFT$(G$,3) =  LEFT$(MO$(I),3)  THEN F = 1
  75. 756  NEXT : IF   NOT F  THEN  PRINT  CHR$(7): VTAB 8: GOTO 750
  76. 760  PRINT 
  77. 770 PG$ =  LEFT$(G$,3) +"." + RIGHT$(G$,4): VTAB 10: PRINT "Create a NEW: ";PG$;" on Disk";: INPUT E$
  78. 780  IF E$ = "Y"  OR E$ = "y"  THEN 930
  79. 790  IF E$ = "N"  OR E$ = "n"  THEN 810
  80. 800  GOTO 770
  81. 810  PRINT : PRINT "Retrieving File: ";PG$: ONERR  GOTO 925
  82. 820  PRINT D$;"VERIFY";PG$: PRINT D$;"OPEN";PG$
  83. 830  PRINT D$;"READ";PG$
  84. 840  FOR R = 0 TO 5
  85. 850  FOR C = 0 TO 6
  86. 860  FOR Z = 0 TO 4
  87. 870  INPUT A$(R,C,Z)
  88. 880  NEXT Z
  89. 890  NEXT C
  90. 900  NEXT R
  91. 910  PRINT D$;"CLOSE";PG$
  92. 920  GOTO 960
  93. 925  CALL ER:E =  PEEK(222): IF E <5  OR E >7  THEN  PRINT "Problem Reading: ";PG$: FOR I = 1 TO 1000: NEXT I: POKE 216,0: GOTO 770
  94. 927  PRINT D$"CLOSE": PRINT  CHR$(7): PRINT "Did NOT find "PG$: PRINT : PRINT "MUST Create NEW File: "PG$: FOR I = 1 TO 1000: NEXT I
  95. 930  GOSUB 280
  96. 940  GOSUB 460
  97. 950  REM 
  98. 960  POKE 216,0: HOME : VTAB 4: INPUT "Do You wish to LIST Appointments  :";E$
  99. 970  IF E$ = "Y"  OR E$ = "y"  THEN 1000
  100. 980  IF E$ = "N"  OR E$ = "n"  THEN 1040
  101. 990  GOTO 960
  102. 1000  HOME : VTAB 4: PRINT "(S)creen (80 column card REQUIRED)": VTAB 5: PRINT "(P)rinter": VTAB 7: INPUT "=>";AN$
  103. 1010  IF AN$ = "S"  OR AN$ = "s"  THEN X = 1: GOTO 2590
  104. 1020  IF AN$ = "P"  OR AN$ = "p"  THEN X = 0: GOTO 120
  105. 1030  GOTO 1000
  106. 1040  PRINT 
  107. 1050  VTAB 6: INPUT "Do You wish to EDIT any Days : ";E$
  108. 1060  IF E$ = "Y"  OR E$ = "y"  THEN 1140
  109. 1070  IF E$ = "N"  OR E$ = "n"  THEN 1090
  110. 1080  GOTO 1050: REM                   
  111. 1090  PRINT 
  112. 1100  INPUT "Do You wish to SAVE Data : ";E$
  113. 1110  IF E$ = "Y"  OR E$ = "y"  THEN 1370
  114. 1120  IF E$ = "N"  OR E$ = "n"  THEN 960
  115. 1130  GOTO 1100: REM                    
  116. 1140  HOME : VTAB 4: INPUT "Enter DATE to be Edited: ";E$:E$ =  RIGHT$("0" +E$,2)
  117. 1145  HOME 
  118. 1150 E$ = "(" +E$ +")"
  119. 1160  FOR R = 0 TO 5
  120. 1170  FOR C = 0 TO 6
  121. 1180  IF E$ = A$(R,C,0)  THEN 1220
  122. 1190  NEXT C
  123. 1200  NEXT R
  124. 1210  GOTO 1140
  125. 1220  PRINT : PRINT A$(R,C,0);" ";G$
  126. 1230  PRINT 
  127. 1240  FOR Z = 1 TO 4
  128. 1250  PRINT "Appointment ";Z;": ";A$(R,C,Z)
  129. 1260  NEXT Z
  130. 1270  FOR Z = 1 TO 4
  131. 1280  VTAB 13 +Z
  132. 1300  PRINT "Enter Appointment #";Z;"     ";: INVERSE : PRINT "          ": NORMAL 
  133. 1301  VTAB 13 +Z: HTAB 26: PRINT A$(R,C,Z)
  134. 1302  VTAB 13 +Z: HTAB 25: INPUT E$
  135. 1305  VTAB 13 +Z: HTAB 26: PRINT A$(R,C,Z)
  136. 1310  IF E$ = ""  THEN  VTAB 13 +Z: HTAB 26: PRINT A$(R,C,Z): GOTO 1350
  137. 1320  IF E$ =  CHR$(11)  THEN E$ = "": VTAB 13 +Z: HTAB 26: INVERSE : PRINT "          ": NORMAL 
  138. 1330  IF  LEN(E$) >10  THEN  FLASH : PRINT  CHR$(7);"TOO MANY CHARACTERS - TRY AGAIN": NORMAL : GOTO 1290
  139. 1340 A$(R,C,Z) = E$
  140. 1350  NEXT Z
  141. 1360  HOME : GOTO 1050: REM               
  142. 1370  HOME : VTAB 10: HTAB 12: PRINT "Saving Appointments"
  143. 1380  PRINT D$;"OPEN";PG$
  144. 1390  PRINT D$;"WRITE";PG$
  145. 1400  FOR R = 0 TO 5
  146. 1410  FOR C = 0 TO 6
  147. 1420  FOR Z = 0 TO 4
  148. 1430  PRINT A$(R,C,Z)
  149. 1440  NEXT Z
  150. 1450  NEXT C
  151. 1460  NEXT R
  152. 1470  PRINT D$;"CLOSE";PG$
  153. 1480  HOME : VTAB 5: INPUT "Do You wish to (E)nd or (C)ontinue...";AW$
  154. 1490  IF AW$ = "E"  OR AW$ = "e"  THEN  HOME : VTAB 10: PRINT "The Program is Done.......!": HIMEM: 38400: END 
  155. 1500  IF AW$ = "C"  OR AW$ = "c"  THEN  HOME : GOTO 960
  156. 1510  GOTO 1480
  157. 1520  REM READ CLOCK
  158. 1550  PRINT D$;"IN#";ZA
  159. 1560  PRINT D$;"PR#";ZA
  160. 1570  INPUT ":";Q$
  161. 1580  PRINT D$;"IN#0"
  162. 1590  PRINT D$;"PR#0"
  163. 1600 MN$ =  MID$ (Q$,3,2)
  164. 1610 MN =  VAL(MN$)
  165. 1620 ZY$ = MO$(MN) +" 19" + MID$ (Q$,9,2)
  166. 1630 JK$ = MO$(MN) +" " + MID$ (Q$,6,2) +", " +"19" + MID$ (Q$,9,2)
  167. 1640 KJ$ =  MID$ (Q$,12,5)
  168. 1650  CALL 667
  169. 1660  RETURN 
  170. 1670  HOME 
  171. 1680  GOTO 2890
  172. 1690  VTAB 8
  173. 1700 A$ = "APPOINTMENT BOOK"
  174. 1710  GOSUB 1840: PRINT 
  175. 1720  VTAB 12
  176. 1730 A$ = "Applied Engineering"
  177. 1740  GOSUB 1840: PRINT 
  178. 1750 A$ = "Copyright (C) 1986"
  179. 1760  GOSUB 1840: PRINT 
  180. 1770  VTAB 23:A$ = "Press RETURN to Continue....": GOSUB 1840
  181. 1780  GET X$: PRINT 
  182. 1790  HOME 
  183. 1800  VTAB 5: INPUT "Do You want Help (Y/N)  :";IN$
  184. 1810  IF IN$ = "Y"  OR IN$ = "y"  THEN 1870
  185. 1820  IF IN$ = "N"  OR IN$ = "n"  THEN 40
  186. 1830  HIMEM: 38400: END 
  187. 1840 CJ = (39 - LEN(A$))/2
  188. 1850  PRINT  SPC( CJ);A$;
  189. 1860  RETURN 
  190. 1870  REM  INSTRUCTION
  191. 1880  VTAB 5
  192. 1890  PRINT "  This program is an appointment book"
  193. 1900  PRINT "written for the Apple //e equipped with"
  194. 1910  PRINT "an APPLIED ENGINEERING Timemaster H.O."
  195. 1920  PRINT "It will allow up to four appointments"
  196. 1930  PRINT "per day."
  197. 1940  GOSUB 2520: VTAB 5
  198. 1950  PRINT "  To gain access into the program and"
  199. 1960  PRINT "enter your appointments, simply give"
  200. 1970  PRINT "the answers to all the questions with"
  201. 1980  PRINT "either a 'Y' or 'N' answer or day of"
  202. 1990  PRINT "week or what ever it asks for.  Once"
  203. 2000  PRINT "it has established what month you are"
  204. 2010  PRINT "dealing with, you will be allowed to"
  205. 2020  PRINT "enter in the appointments."
  206. 2030  GOSUB 2520: VTAB 5
  207. 2040  PRINT "  When entering appointments, you are"
  208. 2050  PRINT "restricted to no more than ten numbers"
  209. 2060  PRINT "or letters per entry.  You may enter"
  210. 2070  PRINT "any information that you wish provided"
  211. 2080  PRINT "it is less than 10 characters.  When"
  212. 2090  PRINT "in the enter mode, you will be asked"
  213. 2100  PRINT "for all four appointments one after the"
  214. 2110  PRINT "other.  If you have less than 4, just"
  215. 2120  PRINT "press return for each entry that will"
  216. 2130  PRINT "not contain any information."
  217. 2140  GOSUB 2520: VTAB 5
  218. 2150  PRINT "  Once the information is entered in"
  219. 2160  PRINT "you may edit the information for each"
  220. 2170  PRINT "date by typing in the new information"
  221. 2180  PRINT "for the specific appointment.  If you"
  222. 2190  PRINT "wish to eliminate a particular piece"
  223. 2200  PRINT "of information, simply select the "
  224. 2210  PRINT "date that you wish to edit and press"
  225. 2220  PRINT "CTRL-K to delete the information on"
  226. 2230  PRINT "that specific appointment."
  227. 2240  PRINT "When ever you make any changes to an"
  228. 2250  PRINT "appointment, the program will save it"
  229. 2260  PRINT "to the disk."
  230. 2270  GOSUB 2520: VTAB 5
  231. 2280  PRINT "NOTES :"
  232. 2290  PRINT 
  233. 2300  PRINT "To have the current time at the top,"
  234. 2310  PRINT "  Switch 4 on the TIMEMASTER II H.O."
  235. 2320  PRINT "  MUST be closed."
  236. 2330  PRINT 
  237. 2340  PRINT "This program saves your appointments"
  238. 2350  PRINT "  on a monthly basic into a text file"
  239. 2360  PRINT "  so you need to put this program on a"
  240. 2370  PRINT "  FRESH disk. (Also use FILER to copy"
  241. 2380  PRINT "  'BIN.TIME.INTERPT' so you can see"
  242. 2390  PRINT "  the current data at the top.)"
  243. 2400  PRINT 
  244. 2440  GOSUB 2520: VTAB 5
  245. 2450  PRINT : PRINT "This program allows you to list your": PRINT "appointments on the screen; however, you": PRINT "DO NEED an 80 column display board."
  246. 2460  PRINT 
  247. 2470  PRINT "If you do not have an 80 column board"
  248. 2480  PRINT "you will need a printer to list the"
  249. 2490  PRINT "Appointment Book."
  250. 2500  GOSUB 2520
  251. 2510  GOTO 30
  252. 2520  REM  INSTRUCTION CONTROL
  253. 2530  VTAB 22
  254. 2540  INPUT "PRESS RETURN TO CONTINUE..";BB$
  255. 2550  HOME 
  256. 2560  RETURN 
  257. 2570  HOME : GOTO 2630
  258. 2580  HOME : GOTO 2750
  259. 2590  PRINT D$;"PR#3"
  260. 2600  HOME 
  261. 2610  POKE 1912,1
  262. 2620  PRINT : PRINT 
  263. 2630 G% = (78 - LEN(G$))/2
  264. 2640  PRINT  SPC( G%);G$
  265. 2650  PRINT  SPC( 4);C$(0); SPC( 8);C$(1); SPC( 8);C$(2); SPC( 8);C$(3); SPC( 8);C$(4); SPC( 8);C$(5); SPC( 8);C$(6)
  266. 2660  PRINT A$
  267. 2670  FOR R = 0 TO 2
  268. 2680  GOSUB 370
  269. 2690  PRINT A$
  270. 2700  NEXT R
  271. 2710  PRINT "Press Right Arrow '->' for NEXT Page                 RETURN to END";: GET X$
  272. 2720  IF X$ =  CHR$(13)  THEN  GOTO 2870
  273. 2730  IF X$ =  CHR$(21)  THEN  GOTO 2580
  274. 2740  GOTO 2570
  275. 2750 G% = (78 - LEN(G$))/2
  276. 2760  PRINT  SPC( G%);G$
  277. 2770  PRINT  SPC( 4);C$(0); SPC( 8);C$(1); SPC( 8);C$(2); SPC( 8);C$(3); SPC( 8);C$(4); SPC( 8);C$(5); SPC( 8);C$(6)
  278. 2780  PRINT A$
  279. 2790  FOR R = 3 TO 5
  280. 2800  GOSUB 370
  281. 2810  PRINT A$
  282. 2820  NEXT R
  283. 2830  PRINT "Press Left Arrow '<-' for PREVIOUS Page              RETURN to END";: GET X$
  284. 2840  IF X$ =  CHR$(13) GOTO 2870
  285. 2850  IF X$ =  CHR$(08)  THEN  GOTO 2570
  286. 2860  GOTO 2580
  287. 2870  PRINT  CHR$(21)
  288. 2880  GOTO 960
  289. 2890 SLOT = 0
  290. 2900  FOR I = 1 TO 7
  291. 2910 ADDR = 12 *4096 +I *256: REM          $CS00  
  292. 2920  IF  PEEK(ADDR) = 8  AND  PEEK(ADDR +1) = 120  AND  PEEK(ADDR +254) = 178  THEN SLOT = I:I = 7
  293. 2930  NEXT 
  294. 2940 ZA = SLOT
  295. 2950  GOTO 1690
  296. 3000  REM FIND DAY OF WEEK 
  297. 3002 Y =  VAL( RIGHT$(G$,4))
  298. 3004  FOR I = 1 TO 12: IF  LEFT$(G$,3) =  LEFT$(MO$(I),3)  THEN M = I
  299. 3006  NEXT I
  300. 3010 CN = (Y > = 2000)
  301. 3020 Y = Y -100 * INT(Y/100)
  302. 3030 LY = ((Y/4) =  INT(Y/4))
  303. 3040 DW =  INT(1.25 *Y) + VAL( MID$ ("033614625035",M,1)) +D +CN -(LY  AND M < = 2)
  304. 3050 X =  INT(7 *(DW/7 - INT(DW/7)) +.5)
  305. 3060  RETURN 
  306. 3100  REM FIND NUMBER OF DAYS PER MONTH
  307. 3110 ND = 30 + VAL( MID$ ("101010110101",M,1))
  308. 3120  IF M = 2  THEN ND = 28 +(LY = 1)
  309. 3130  RETURN 
  310. 50000  IF  PEEK(64435) = 56  THEN 50030
  311. 50010  IF  PEEK(64435) = 234  AND  PEEK(64286) = 173  THEN 50030
  312. 50020  RETURN 
  313. 50030  HOME 
  314. 50040  VTAB 10: PRINT "LOWER CASE:abcdefghijklmnopqrstuvwxyz"
  315. 50050  PRINT "DISPLAY LOWERCASE LETTERS? (Y/N)";: GET Q$: PRINT Q$
  316. 50060  IF Q$ = "N"  OR Q$ = "n"  THEN  PRINT  CHR$(4)"BRUN UPPER.CASE": RETURN 
  317. 50070  IF Q$ < >"Y"  AND Q$ < >"y"  THEN  PRINT  CHR$(7): GOTO 50040
  318. 50080  RETURN